import { defineStore } from "pinia"

interface IState {
    /** 设备宽度 */
    deviceWidth: 1080 | 1366,
}

// 对外部暴露一个 use 方法，该方法会导出我们定义的 state
export const useDeviceStore = defineStore({
    // 每个 store 的 id 必须唯一
    id: 'device',
    // state 表示数据源
    state: (): IState => ({
        deviceWidth: 1080,
    }),
    // getters 类似于 computed，可对 state 的值进行二次计算
    getters: {

    },
    // actions 用来修改 state
    actions: {
        // 获取当前设备宽度
        calcDeviceWidth() {
            const width: number = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
            if (width <= 1080) {
                this.$patch((state) => {
                    state.deviceWidth = 1080
                })
            } else if (width <= 1366) {
                this.$patch((state) => {
                    state.deviceWidth = 1366
                })
            }
        },
    },

})